package cn.tedu.em.car.service;

import cn.tedu.em.common.pojo.car.dto.CarAddNewDTO;
import cn.tedu.em.common.pojo.car.dto.CarUpdateDTO;
import cn.tedu.em.common.pojo.car.entity.Car;
import cn.tedu.em.common.pojo.car.vo.CarListForUserVO;
import cn.tedu.em.common.pojo.car.vo.CarListVO;
import cn.tedu.em.common.pojo.car.vo.CarStandardVO;

import java.util.List;

public interface ICarService {

    /**
     * 添加车辆
     * @param carAddNewDTO 新增车辆信息
     * @return 受影响的行数
     */
    void addNew(CarAddNewDTO carAddNewDTO);

    /**
     * 根据车辆id删除车辆
     * @param id 车辆id
     * @return 受影响的行数
     */
    void deleteById(Long id);

    /**
     * 根据用户id删除车辆数据
     * @param userId 用户id
     * @return 受影响的行数
     */
    void deleteByUserId(Long userId);

    /**
     * 根据id修改车辆信息
     * @param carUpdateDTO 修改车辆信息
     * @return 受影响的行数
     */
    void updateCarInfo(CarUpdateDTO carUpdateDTO);

    /**
     * 根据id查询车辆信息
     * @param id 车辆id
     * @return 车辆信息
     */
    CarStandardVO getCarInfoById(Long id);

    /**
     * 查询车辆列表
     * @return 车辆列表
     */
    List<CarListVO> getCarList();

    /**
     * 根据用户id查询车辆列表
     * @param userId 用户id
     * @return 根据用户id查询到的车辆列表
     */
    List<CarListForUserVO> getCarListByUserId(Long userId);

}
